Decoding and presentation time stamping systems play a very important role in providing proper synchronization (e.g., audio and video synchronization) for the operation of the decoding process. In a video transport system, the system clock of a video program is usually used to create timestamps that indicate the presentation and decoding timing values of the system clock itself at sampled intervals. It is the presence of these time stamps and the correct use of the timestamps that provide the facility to synchronize properly the operation of the decoding.
The MPEG-2 Systems standard is detailed in ITU-T Recommendation H.222.0 (1995)|ISO/IEC 13818-1:1996, Information Technology—Generic Coding of Moving Pictures and Associated Audio Information Systems which is hereby incorporated by reference for all purposes. In MPEG-2 systems, a video elementary stream is assembled into a packetized elementary stream (PES). Presentation Time Stamps (PTS) are carried in headers of the packetized elementary stream. Decoding time stamps (DTS) are also carried in PES headers of an I- or P-picture when bi-directional predictive coding is enabled. The DTS field is not sent with a video PES stream that was generated with B-picture decoding disabled. The value for a component of PTS (and DTS, if present) is derived from the 90 KHz portion of the program clock reference that is assigned to the service to which the component belongs.
Both PTS and DTS are determined in the video encoder for coded video pictures. If a stream includes only I and P-pictures, these pictures need not be delayed in the reorder buffer and the PTS and DTS are identical. This is known as the low delay mode, and is indicated in the MPEG-2 video elementary stream. If B-pictures are included in the video stream, coded pictures do not arrive at the decoder in presentation order. Some pictures in the stream must be stored in a reorder buffer in the decoder after being decoded until their corrected presentation time.
FIG. 1A is a timing diagram for decoding and presenting an exemplary video sequence. The pictures B1, B2, and B3 are decoded from I0 and P4. Accordingly, P4 is decoded prior to B1, B2, and B3. However, after decoding, p4 is stored in a reorder buffer until after B1, B2, and B3 are presented for display. Any I- or P-picture previously stored in the reorder buffer is presented before the next I- or P-picture. While the I- or P-picture is stored in the reorder buffer, any subsequent B-picture(s) are decoded and presented. This is known as non low-delay mode.
For MPEG-2 video, DTS indicates the time when the associated video picture is to be decoded while PTS indicates the time when the presentation unit decoded from the associated video picture is to be presented on the display. Times indicated by PTS and DTS are evaluated with respect to the current System Time Clock value—locked to Program Clock Reference (PCR). For B-pictures, PTS is equal to DTS. For I and P-pictures, PTS and DTS differ by the time that the pictures is delayed in the reorder buffer, which is a multiple of the nominal picture period.
The DTS for a given picture is calculated by adding a fixed delay time, D*f (where f is equal to the time for displaying one frame and D is an integer), to the Picture Sync Time Stamp (PSTS). The picture sync time stamp is a 33-bit value of the 90 Khz portion of the PCR that is latched by the picture sync. The delay time, D*f, is nominally the delay from the input of the MPEG-2 video encoder to the output of the MPEG-2 video decoder. This delay is also known as end-to-end delay and is most likely determined during system integration testing.
The position of a picture in the final display order is determined by using the picture type (I, P, or B). The number of pictures, if any, for which the current picture is delayed before presentation is used to calculate the PTS from the DTS. If the picture is a B-picture, the PTS and DTS are identical, because B-pictures are not used as reference pictures in the MPEG-2 standard.
Another variant of the MPEG specification is known as MPEG-4 Advanced Video Coding (MPEG-4 AVC) and is described in Committee Draft, JVT-C167, ITU-T Recommendation H.264, which is incorporated herein by reference. One of the differences between the MPEG-4 AVC standard and the MPEG-2 standard is that MPEG-4 B-pictures can be used as reference pictures. Another difference is that P-pictures can be predicted from later reference pictures. Consequently, the low-delay/non-low delay method for determining the presentation time stamps is insufficient.
Accordingly, it would be advantageous if a time-stamping scheme for MPEG-4 AVC is provided. Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with embodiments presented in the remainder of the present application with references to the drawings.